package com.nnnu.wsnackshop.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nnnu.wsnackshop.pojo.entity.Banners;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 轮播图Mapper接口
 */
@Mapper
public interface BannersMapper extends BaseMapper<Banners> {

    /**
     * 分页查询轮播图
     */
    IPage<Banners> selectBannerPage(Page<Banners> page, @Param("title") String title,
            @Param("status") Integer status, @Param("linkType") String linkType);

    /**
     * 获取启用的轮播图列表（按排序权重降序）
     */
    List<Banners> selectEnabledBanners();

    /**
     * 根据ID查询轮播图详情
     */
    Banners selectBannerById(@Param("id") Integer id);

    /**
     * 更新轮播图状态
     */
    int updateBannerStatus(@Param("id") Integer id, @Param("status") Integer status);

    /**
     * 更新轮播图排序
     */
    int updateBannerSort(@Param("id") Integer id, @Param("sortOrder") Integer sortOrder);

    /**
     * 批量删除轮播图
     */
    int deleteBannersByIds(@Param("ids") List<Integer> ids);

    /**
     * 更新轮播图信息
     */
    int updateBannerInfo(@Param("id") Integer id, @Param("title") String title,
            @Param("imageUrl") String imageUrl, @Param("linkUrl") String linkUrl,
            @Param("linkType") String linkType, @Param("linkId") Integer linkId,
            @Param("sortOrder") Integer sortOrder, @Param("status") Integer status,
            @Param("description") String description);
}